[GA] Amazon ECR のリポジトリ作成テンプレートが GA になったので、プレビューからの変更点をまとめました

[GA] Amazon ECR のリポジトリ作成テンプレートが GA になったので、プレビューからの変更点をまとめました

Clock Icon2024.07.28

いわさです。

Amazon ECR には「リポジトリ作成テンプレート」という機能がプレビューで使えていたのをご存知でしょうか。

https://dev.classmethod.jp/articles/preview-annoucement-amazon-ecr-repository-creation-templates/

ECR には自動で作成されるリポジトリがいくつかあるのですが、その初期設定テンプレートとして機能させるためのものです。
2023 年 11 月にプレビューとしてこちらの機能が登場していましたが、先日こちらが GA となりました。

https://aws.amazon.com/about-aws/whats-new/2024/07/amazon-ecr-repository-creation-templates-generally-available/

本日時点では日本語ドキュメントはまだプレビュー時点の仕様となっていまして、英語版と比較してみたところいくつか機能が追加されていることが確認出来ました。

マネジメントコンソール上からそれらの変更点を実際に確認してみましたので紹介します。

テンプレートの適用対象が増えました

プレビュー時点ではテンプレートの適用対象はプルスルーキャッシュリポジトリのみでしたが、今回の GA に伴ってレプリケーション時の自動作成リポジトリも対象にすることが出来るようになっています。

テンプレート作成時のステップ1で次のように適用対象を選択することが出来るようになりました。

DE655C9D-21D0-47BD-A11F-4AD1D62716D2

テンプレート一覧では適用対象の情報を確認することが出来るようになっています。

FF50E340-CCB3-48C4-9E8D-E2673217BEA0_4_5005_c

なお、この GA のタイミングでテンプレートにカスタムロールが使用出来るようになっています。
テンプレートでリポジトリタグまたは KMS を使用するときに使用するカスタム IAM ロールをドロップダウンメニューから選択出来ます。

95E837E3-D388-4179-9DD1-8CF072362A13

IAM ロールの作成方法はこちら。ecr.amazonaws.comを信頼すれば OK です。

https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-creation-templates-create-iam.html

テンプレートの変更が可能になりました

テンプレート作成の最後のステップで次のように表示されます。
プレビュー時の記事でも言及されていますが、パブリックプレビューの時には作成したテンプレートを変更することは出来ませんでした。
これが今回の GA に伴って変更出来るようになっています。ただしテンプレートに設定するプレフィックスの変更は行えませんので注意が必要です。

6EB6E992-8363-4437-B842-20CC8ADF1145

リストから変更したいテンプレートを選択してアクションメニューから「編集」を選択します。

D13BDF67-BFE9-4A27-A098-6FB8310B6807

テンプレート変更出来ますね。
適用対象やポリシーは変更出来るのですが、仕様どおりいプレフィックスの変更は出来ません。

0C070E14-9585-47C4-8884-4F8753DA77BF

マネジメントコンソール以外からも管理が可能になりました

プレビュー時点ではマネジメントコンソールでのみ作成が可能でした。
今回のアップデートで AWS CLI などの API 経由での作成もサポートされました。

v1.33.31 以降で次のコマンドが使えます。

テンプレート作ってみましょう。
以下は最小限な感じで、ライフサイクルや KMS を設定するともうちょっと色々と設定が必要になります。

% cat hoge.json
{
    "prefix": "fuga",
    "encryptionConfiguration": {
        "encryptionType": "AES256"
    },
    "imageTagMutability": "MUTABLE",
    "repositoryPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Statement\" : [ {\n    \"Sid\" : \"LambdaECRPullPolicy\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"Service\" : \"lambda.amazonaws.com\"\n    },\n    \"Action\" : [ \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n  } ]\n}",
    "appliedFor": [
        "PULL_THROUGH_CACHE", "REPLICATION"
    ]
}
% aws-v1 ecr create-repository-creation-template --cli-input-json file://hoge.json  
{
    "registryId": "123456789012",
    "repositoryCreationTemplate": {
        "prefix": "fuga",
        "encryptionConfiguration": {
            "encryptionType": "AES256"
        },
        "imageTagMutability": "MUTABLE",
        "repositoryPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Statement\" : [ {\n    \"Sid\" : \"LambdaECRPullPolicy\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"Service\" : \"lambda.amazonaws.com\"\n    },\n    \"Action\" : [ \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n  } ]\n}",
        "appliedFor": [
            "PULL_THROUGH_CACHE",
            "REPLICATION"
        ],
        "createdAt": 1722119657.548,
        "updatedAt": 1722119657.548
    }
}

AWS CLI から作成したテンプレートが確認できました。

DA1CF5C1-C138-453E-8FA5-193927151C3D

さいごに

本日は Amazon ECR のリポジトリ作成テンプレートが GA になったので、プレビューからの変更点をまとめてみました。

プレビュー時のプルスルーキャッシュに加えてレプリケーションもサポートされるようになったので使っているかたはリポジトリ作成テンプレート確認してみてください。
プレビューでまだ利用を見送っていた方も、GA となったのでこれを機に運用環境での利用もご検討ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.